package cn.trigram.lang;

import java.math.BigDecimal;
import java.math.RoundingMode;

/**
 * @author 一日看尽长安花
 */
public class MathUtil {

  /**
   * 利用对数的恒等式  logx(y)= loge(x)/loge(y)
   *
   * @param v
   *     值
   * @param base
   *     对数底
   * @return 对数运算
   */
  public static double log(double v, double base) {

    return BigDecimal.valueOf(Math.log(v))
        .divide(BigDecimal.valueOf(Math.log(base)), RoundingMode.HALF_UP).doubleValue();
  }

  public static double log2(double v) {

    return log(v, 2);
  }

}
